1. Field of the Invention
The present application relates to an optical transceiver implemented with a microprocessor whose micro program is rewritable.
2. Background Arts
An optical transceiver, in particular, a pluggable optical transceiver may be coupled with a device in an upper layer, which is often called as the host system. Such an optical transceiver generally includes an MDIO (Management Data Input/Output) interface to communicate with the upper layer, namely the host system, and a microprocessor or a micro-controller to control, monitor and diagnose components implemented within the optical transceiver. The communication with the host system is often carried out through a serial bus, specifically, a two-wired serial bus called as I2C bus, and/or another serial bus called as the Management Data Input/Output (hereafter denoted as MDIO) bus. The MDIO interface connected to the MDIO bus is implemented with an MDIO register to store data transmitted on the MDIO bus temporarily. The MDIO interface is coupled with the microprocessor through an internal bus.
The MDIO protocol on the MDIO bus is carried out by a unit of 64 bits, which is called the MDIO frame. The configuration of the MDIO frame, which is defined in the standard of IEEE 802.3 clause 45, titled “CFP MSA Management Interface Specification”, includes two-bit length operation code OP, and sixteen-bit length data/address. The host system may control the optical transceiver by setting the operation codes of ADDRESS, WRITE, READ, and auto increment address after reading (AUTO).
An optical transceiver is sometimes requested to rewrite the micro program thereof to fix bugs and/or enhance the performance after the shipment. It is preferable to rewrite the micro program through a host system on site and the MDIO interface during an ordinary operation of the optical transceiver. However, the optical transceiver and the host system periodically communicates together to send from the optical transceiver to the host system results of the monitoring and the diagnostic of the components, and/or instructions from the host system to the optical transceiver. The size of the micro program often exceeds several scores or several hundred of kilo-bytes; while, the MDIO bus only carries 16 bits (2 bytes) for data/address in one MDIO frame, which means that the transfer of the whole micro program from the host system requires a long time, during which the optical transceiver is forced to stop the ordinary operation.
Moreover, a flash ROM, which is usually built in the microprocessor to store the micro program and composed of some blocks, is necessary to erase all data in one block before a data is written in one address in the block. Accordingly, the CPU often takes a time exceeding 100 μs to write data in the flash ROM. That is, the temporary register in the MDIO interface is required to hold the data at least 100 μs. On the other hand, the communication between the MDIO interface and the host system on the MDIO bus is necessary to continue by a constant period of 16 μs or more, which is required from the standard that defines the maximum clock speed of 4 MHz (0.25 μs) and one MDIO frame has a length of 64 bits. So, the optical transceiver inevitably responds to every MDIO frame by the period of 16 μs or more. This makes two operations impossible to be executed concurrently. That is, one of operations is to transfer the data in the temporary register in the MDIO interface to the flash ROM with an elapsing time of about 100 μs or more, and another operation is to respond to the instruction of the host system within the period of 16 μs at least.